package main

import "fmt"

var mm = [][]string{
	[]string{"a","b","c"}, //2
	[]string{"d","e","f"}, //3
	[]string{"g","h","i"}, //4
	[]string{"j","k","l"}, //5
	[]string{"m","n","o"}, //6
	[]string{"p","q","r","s"}, //7
	[]string{"t","u","v"}, //8
	[]string{"w","x","y","z"}, //9
}

func main()  {
	var str = "239"
	fmt.Println(handlesj(str))
}

func handlesj(str string) []string {
	if len(str) <= 0 {
		return []string{}
	}

	strArr := []byte(str)
	var ret []string

	xunhuan(&strArr,0,"",&ret)
	return  ret
}

func xunhuan(arr *[]byte,level uint8,curStr string,ret *[]string)  {
	if level >= uint8(len(*arr)) {
		*ret = append(*ret,curStr)
		return
	}

	index := (*arr)[level] - '2'
	sli := mm[index]
	for _,v:=range sli {
		xunhuan(arr,level+1,curStr+v,ret)
	}

}